应用程序与硬件进行交互(实现硬件绑定、应用程序与硬件通信)

您所在的位置:网站首页 linux 绑定硬件信息进行加密 应用程序与硬件进行交互(实现硬件绑定、应用程序与硬件通信)

应用程序与硬件进行交互(实现硬件绑定、应用程序与硬件通信)

2024-07-09 12:19| 来源: 网络整理| 查看: 265

一、前言    在无操作系统的裸机中,或者类似如DOS这样操作系统中,应用程序和硬件的交互是非常简单的。如果没有操作系统,我们访问硬件空间可能只需一条指令就行,甚至可以访问任意的内存空间或者IO空间。但是在WINDOWS操作系统中,应    用程序与硬件间被完全隔离开来,应用程序与软件的通信就必须依赖于依赖驱动程序。有点类似于现在的网上购物,卖家相当于硬件,而卖家相当于应用程序,淘宝等类似的购物网站相当于驱动程序,而卖家与买家之间的买卖就得依赖    于淘宝等类似的购物网站。至于为什么要把硬件层和应用程序隔开,答案是——安全。允许应用程序随意访问硬件是一件很危险的事情,除了可能会造成蓝屏死机之类的问题,还会发生密码的安全性问题。那在我们日常开发过程当中哪    些场景需要涉及到硬件与软件的交互呢?    二、应用程序与硬件交互的场景    1.读取硬件信息      当应用程序需要与硬件进行捆绑时,就需要获取对应的硬件信息,例如触摸框绑定、MCU绑定等等,需要读取出对应硬件的信息,并与预期的信息进行比较来判断是否进行了绑定。获取MCU版本号等等。        2.与硬件进行通信      应用程序与硬件进行通信,比单纯的读取硬件信息稍微复杂一点。例如通过MCU来进行定时开关机,首先需要根据对应的信息查找指定的MCU设备,然后将对应的定时开关机指定发送给MCU,MCU收到信息之后,发送信息给应用程序,告之    定时开关机的指定是否设置成功。这其中包含了应用程序与硬件之间的通信。        3.硬件的管理      例如磁盘的管理,我们可以自己编写应用程序对磁盘进行一系列的管理,磁盘分区、磁盘大小等等。移动设备管理工具等等都可以实现。          4.其他      当然还有很多很多啦....         那么,既然我们提到了这么多得应用场景,那我们如何来实现它们呢?那接下来就不得不提SetupDi这一系列API了。    三、SetupDi API

    1.HidD_GetHidGuid      函数定义      BOOL       Hidd_GetHidGuid(      &guidHID 指向GUID类型的指针      );      HID类设备是通过GUID类型值作标识的,调用函数HidD_GetHidGuid颗获得HID设备的标识

    2.SetupDiGetClassDevs      函数定义    HDEVINFO    SetupDiGetClassDevs(    const GUID *ClassGuid,//HID类设备是通过GUID类型值作标识的,如图1.图Guid示例,通过指向Guid的指针,获取对应的设备列表。    PCTSTR Enumerator,



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3